﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using BLL;
using VOL;

namespace WebQuyPhong.Admin
{
    public partial class ThuQuyForm : System.Web.UI.Page
    {
        ThuQuyBL _thuQuyBLL = new ThuQuyBL();

        int IDTHU = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                FillData();

                string _IdThu = Request.QueryString["IDTHU"];

                if (_IdThu == null || _IdThu == "" || !int.TryParse(_IdThu, out IDTHU))
                {
                    hdfIDTHU.Value = "0";
                    hdfTHANGTHU.Value = "0";
                    hdfNAMTHU.Value = "0";
                }
                else
                {
                    THUQUY obj = new THUQUY();
                    DateTime ntnthu = new DateTime();

                    obj.IDThu = IDTHU;

                    DataTable dt = _thuQuyBLL.searchIDTHU(obj);

                    ddlNoiDungThu.SelectedValue = dt.Rows[0]["IDNOIDUNG"].ToString();

                    txtSoTienThu.Text = dt.Rows[0]["SOTIENTHU"].ToString();

                    if (int.Parse(dt.Rows[0]["IDNOIDUNG"].ToString()) == 1)
                    {
                        ddlCanBo.SelectedValue = dt.Rows[0]["IDCANBO"].ToString();
                        ddlCanBo.Enabled = true;
                    }
                    else{
                        ddlCanBo.Enabled = false;
                        ddlCanBo.SelectedValue = "- Vui lòng Chọn -";
                    }

                    ntnthu = DateTime.Parse(dt.Rows[0]["NTNTHU"].ToString().Substring(0, 10));
                    txtNgayThu.Text = ntnthu.ToString("yyyy-MM-dd");

                    txtGhiChu.Text = dt.Rows[0]["GHICHU"].ToString();

                    hdfIDTHU.Value = _IdThu;

                    hdfTHANGTHU.Value = dt.Rows[0]["NTNTHU"].ToString().Substring(3, 2);
                    hdfNAMTHU.Value = dt.Rows[0]["NTNTHU"].ToString().Substring(6, 4);
                }
            }
        }

        private void FillData()
        {
            DMCanBoBL _dmCanBoBl = new DMCanBoBL();
            ddlCanBo.DataSource = _dmCanBoBl.GetDataCB();
            ddlCanBo.DataValueField = "IDCANBO";
            ddlCanBo.DataTextField = "HOTEN";
            ddlCanBo.DataBind();
            ddlCanBo.Items.Insert(0, "- Vui lòng Chọn -");

            NoiDungThuBL _noidungThuBl = new NoiDungThuBL();
            ddlNoiDungThu.DataSource = _noidungThuBl.GetData();
            ddlNoiDungThu.DataValueField = "IDNDTHU";
            ddlNoiDungThu.DataTextField = "TENNDTHU";
            ddlNoiDungThu.DataBind();
            ddlNoiDungThu.Items.Insert(0, "- Vui lòng Chọn -");

        }

        protected void btnSave_Click(object sender, EventArgs e)
        {
            THUQUY obj = new THUQUY();
            QUYPHONG objquyphong = new QUYPHONG();
            QuyPhongBL _quyphongBLL = new QuyPhongBL();
            DMCanBoBL _dmCanBoBLL = new DMCanBoBL();
            int nophet = 0;
            bool bienktcanbo = false;

            string _IdThu = hdfIDTHU.Value;
            int varthangthu = int.Parse(hdfTHANGTHU.Value);
            int varnamthu = int.Parse(hdfNAMTHU.Value) ;
            
            if (_IdThu == null || _IdThu == "0")
            {
                // thực hiện thêm mới
                //KIEM TRA CAN BO DA THU THANG DO CHUA, NEU THU ROI THI KO THEM MOI CHI DUOC SUA
                //thu can bo
                if (int.Parse(ddlNoiDungThu.SelectedValue) == 1)
                {
                    if (int.Parse(ddlCanBo.SelectedValue) > 0)
                    {
                        //lay du lieu thang thu va nam thu
                        int thangthu = int.Parse(txtNgayThu.Text.Substring(5, 2));
                        int namthu = int.Parse(txtNgayThu.Text.Substring(0, 4));
                        int idcanbo = int.Parse(ddlCanBo.SelectedValue);

                        if (_thuQuyBLL.checkCBThuThang(idcanbo, thangthu, namthu) == true)
                        {
                            //da thu thang nay cua can bo, hien thi thong bao va quay lai trang quan ly
                            bienktcanbo = true;
                        }
                        else
                        {
                            //chua thu thang nay cua can bo thi thuc hien them moi
                            obj.IDNoiDung = int.Parse(ddlNoiDungThu.SelectedValue);
                            obj.SoTienThu = float.Parse(txtSoTienThu.Text);

                            if (ddlCanBo.SelectedValue == "- Vui lòng Chọn -") obj.IDCanBo = 0;
                            else obj.IDCanBo = int.Parse(ddlCanBo.SelectedValue);

                            obj.NgayThu = int.Parse(txtNgayThu.Text.Substring(8, 2));
                            obj.ThangThu = int.Parse(txtNgayThu.Text.Substring(5, 2));
                            obj.NamThu = int.Parse(txtNgayThu.Text.Substring(0, 4));

                            obj.NTNThu = DateTime.Parse(txtNgayThu.Text);
                            obj.GhiChu = txtGhiChu.Text;

                            _thuQuyBLL.InsertData(obj);

                            //cap nhat lai da thu het cho bang tblDMCANBO
                            //KIEM TRA CAN BO DA NOP DU 12 THANG CHUA
                            if (_thuQuyBLL.checkCBThuNam(idcanbo, namthu) == true)
                            {
                                //update
                                nophet = 1;
                                _dmCanBoBLL.UpdateDataCBNopHet(idcanbo, nophet);
                            }
                            else _dmCanBoBLL.UpdateDataCBNopHet(idcanbo, nophet);
                        }
                    }
                }
                else//khong phai thu can bo
                {
                    obj.IDNoiDung = int.Parse(ddlNoiDungThu.SelectedValue);
                    obj.SoTienThu = float.Parse(txtSoTienThu.Text);

                    if (ddlCanBo.SelectedValue == "- Vui lòng Chọn -") obj.IDCanBo = 0;
                    else obj.IDCanBo = int.Parse(ddlCanBo.SelectedValue);

                    obj.NgayThu = int.Parse(txtNgayThu.Text.Substring(8, 2));
                    obj.ThangThu = int.Parse(txtNgayThu.Text.Substring(5, 2));
                    obj.NamThu = int.Parse(txtNgayThu.Text.Substring(0, 4));

                    obj.NTNThu = DateTime.Parse(txtNgayThu.Text);
                    obj.GhiChu = txtGhiChu.Text;

                    _thuQuyBLL.InsertData(obj);
                }

                //kiểm tra dữ liệu năm này đã có chưa, nếu có rồi thì update, nếu  không có thì thêm mới
                if (_thuQuyBLL.kiemtraQuyNam(int.Parse(txtNgayThu.Text.Substring(0, 4))))
                {
                    //lay so tien thu tong sau khi sua thanh cong
                    float sumsotienthu = _thuQuyBLL.GetSumSotienThu(int.Parse(txtNgayThu.Text.Substring(0, 4)), int.Parse(ddlNoiDungThu.SelectedValue));

                    //cập nhật lại bảng quỹ phòng
                    _thuQuyBLL.UpdateQuyPhong(int.Parse(txtNgayThu.Text.Substring(0, 4)), sumsotienthu, int.Parse(ddlNoiDungThu.SelectedValue));
                }
                else{
                    //THÊM MỚI QUỸ PHÒNG CỦA NĂM

                    //lấy dữ liệu số tiền còn lại của năm trước:
                    objquyphong.SoTienNamTruoc = _thuQuyBLL.GetSoTienNamTruoc(int.Parse(txtNgayThu.Text.Substring(0, 4)));
                    if (int.Parse(ddlNoiDungThu.SelectedValue)==1) {
                        objquyphong.SoTienThuCB = float.Parse(txtSoTienThu.Text);
                        objquyphong.SoTienThuKhac= 0;
                    }
                    else{
                        objquyphong.SoTienThuCB = 0;
                        objquyphong.SoTienThuKhac= float.Parse(txtSoTienThu.Text);
                    }
                    
                    objquyphong.SoTienChi = 0 ;
                    objquyphong.SoTienConLai = float.Parse(txtSoTienThu.Text);
                    objquyphong.Nam = int.Parse(txtNgayThu.Text.Substring(0, 4));;
                    _quyphongBLL.InsertData(objquyphong);

                }
            }
            else
            {
                // thực hiện sửa
                obj.IDThu = int.Parse(_IdThu);

                //KIEM TRA CAN BO DA THU THANG DO CHUA, NEU THU ROI THI KO THEM MOI CHI DUOC SUA
                //thu can bo
                if (int.Parse(ddlNoiDungThu.SelectedValue) == 1)
                {
                    if (int.Parse(ddlCanBo.SelectedValue) > 0)
                    {
                        //lay du lieu thang thu va nam thu
                        int thangthu = int.Parse(txtNgayThu.Text.Substring(5, 2));
                        int namthu = int.Parse(txtNgayThu.Text.Substring(0, 4));
                        int idcanbo = int.Parse(ddlCanBo.SelectedValue);

                        if (varthangthu != thangthu) 
                        {
                            //da thu thang nay cua can bo, hien thi thong bao va quay lai trang quan ly
                            if (_thuQuyBLL.checkCBThuThang(idcanbo, thangthu, namthu) == true)
                                  bienktcanbo = true;
                        }
                        else
                        {
                            //chua thu thang nay cua can bo thi thuc hien sua
                            obj.IDNoiDung = int.Parse(ddlNoiDungThu.SelectedValue);
                            obj.SoTienThu = float.Parse(txtSoTienThu.Text);
                            if (ddlCanBo.SelectedValue == "- Vui lòng Chọn -") obj.IDCanBo = 0;
                            else obj.IDCanBo = int.Parse(ddlCanBo.SelectedValue);
                            obj.NgayThu = int.Parse(txtNgayThu.Text.Substring(8, 2));
                            obj.ThangThu = int.Parse(txtNgayThu.Text.Substring(5, 2));
                            obj.NamThu = int.Parse(txtNgayThu.Text.Substring(0, 4));

                            obj.NTNThu = DateTime.Parse(txtNgayThu.Text);
                            obj.GhiChu = txtGhiChu.Text;


                            _thuQuyBLL.UpdateData(obj);

                            //cap nhat lai da thu het cho bang tblDMCANBO
                            //KIEM TRA CAN BO DA NOP DU 12 THANG CHUA
                            if (_thuQuyBLL.checkCBThuNam(idcanbo, namthu) == true)
                            {
                                //update
                                nophet = 1;
                                _dmCanBoBLL.UpdateDataCBNopHet(idcanbo, nophet);
                            }
                            else _dmCanBoBLL.UpdateDataCBNopHet(idcanbo, nophet);
                        }
                    }
                }
                else
                {
                    //khong phai thu can bo
                    obj.IDNoiDung = int.Parse(ddlNoiDungThu.SelectedValue);
                    obj.SoTienThu = float.Parse(txtSoTienThu.Text);
                    if (ddlCanBo.SelectedValue == "- Vui lòng Chọn -") obj.IDCanBo = 0;
                    else obj.IDCanBo = int.Parse(ddlCanBo.SelectedValue);
                    obj.NgayThu = int.Parse(txtNgayThu.Text.Substring(8, 2));
                    obj.ThangThu = int.Parse(txtNgayThu.Text.Substring(5, 2));
                    obj.NamThu = int.Parse(txtNgayThu.Text.Substring(0, 4));

                    obj.NTNThu = DateTime.Parse(txtNgayThu.Text);
                    obj.GhiChu = txtGhiChu.Text;


                    _thuQuyBLL.UpdateData(obj);
                }

                //lay so tien thu tong sau khi sua thanh cong
                float sumsotienthu = _thuQuyBLL.GetSumSotienThu(int.Parse(txtNgayThu.Text.Substring(0, 4)),int.Parse(ddlNoiDungThu.SelectedValue));

                //cập nhật lại bảng quỹ phòng
                _thuQuyBLL.UpdateQuyPhong(int.Parse(txtNgayThu.Text.Substring(0, 4)), sumsotienthu , int.Parse(ddlNoiDungThu.SelectedValue));
            }

            if (bienktcanbo == true)
            {
                Response.Write("<script LANGUAGE='JavaScript' >alert('Cán bộ đã được thu quỹ tháng này rồi!');document.location='" + ResolveClientUrl("~/Admin/ThuQuyForm.aspx") + "';</script>");
            }
            else
            {

                if (ddlCanBo.SelectedValue != "- Vui lòng Chọn -")
                {
                    Response.Redirect("~/Admin/ThuQuyCBManager.aspx");
                }
                else
                {
                    Response.Redirect("~/Admin/ThuQuyManager.aspx");
                }
            }
        }


        //bat su kien khi thay doi noi dung thu can bo moi hien thi combo can bo
        protected void ddlNoiDungThu_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlNoiDungThu.SelectedValue == "- Vui lòng Chọn -")
                ddlCanBo.Enabled = false;
            else
                if (int.Parse(ddlNoiDungThu.SelectedValue) == 1)
                    ddlCanBo.Enabled = true;
                else ddlCanBo.Enabled = false;
        }
      
    }
}